package com.power.ding.service;

import com.alibaba.fastjson2.JSONObject;
import com.plf.common.domain.PageDataResponse;
import com.power.ding.exception.DingException;
import org.springframework.data.domain.Page;
import com.power.ding.model.Di_todo;
import com.power.ding.model.pageInfo.Di_todoPageInfo;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 *  钉钉待办发送业务层
 */
public interface Di_todoService {

    /**
     *  根据id获取钉钉待办发送对象
     */
    Di_todo getById(Serializable id);

    /**
     *  根据传入钉钉待办发送对象进行新增或更新操作
     */
    void saveOrUpdate(Di_todo di_todo);

    /**
     *  根据id删除钉钉待办发送
     */
    void removeById(Serializable id);

    /**
     *  根据传入条件查询钉钉待办发送分页结果
     */
    Page<Di_todo> findAll(Di_todoPageInfo pageInfo);
    
    /**
     * 查询全部钉钉待办发送
     */
    List<Di_todo> findAll();
    
     /**
     *  根据id批量删除钉钉待办发送
     */
    void removeByIds(List<Integer> list);
    
     /**
     *  批量保存钉钉待办发送
     */
    void saveAll(List<Di_todo> list);

    /**
     *	根据用户id获取待办列表
     * @param pageInfo
     * @return
     * @throws DingException
     */
    PageDataResponse getTodoListByUserid(Di_todoPageInfo pageInfo) throws DingException;

    /**
     * 根据applyid及类型查询附件信息
     * @param applyid
     * @param mattype
     * @return
     */
    Map<String, Object> getAttachByApplyid(String applyid, Integer mattype);

    List<Map<String, Object>> getFileListByApplyId(String applyid, Integer mattype);

    JSONObject finishRespond(String id, List<MultipartFile> files) throws Exception;
}
